package com.dreem.principle.singleresponsibility;

/**
 * @program: DesignParrtern
 * @description:
 * @author: Peng
 * @create: 2021-01-14  23:19
 **/
public class SingleResponsibility2 {
    public static void main(String[] args) {
        RoadVehicle roadVehicle = new RoadVehicle();
        roadVehicle.run("汽车");
        roadVehicle.run("摩托车");
        new AirVehicle().run("飞机");
        new WaterVehicle().run("轮船");
    }
}

// 方案2分析
// 1.准守单一职责原则
// 2.但是这样做的改动很大，即将类分解，同时修改客户端
// 3.改进：直接修改Vehicle类，改动的代码会比较少-->方案三

// 公路交通工具类
class RoadVehicle {
    // 定义一个交通工具的方法
    public void run(String vehicle) {
        System.out.println(vehicle + "在公路上跑.....");
    }
}

// 天空交通工具类
class AirVehicle {
    // 定义一个交通工具的方法
    public void run(String vehicle) {
        System.out.println(vehicle + "在天上跑.....");
    }
}

// 水路交通工具
class WaterVehicle {
    // 定义一个交通工具的方法
    public void run(String vehicle) {
        System.out.println(vehicle + "在水路上跑.....");
    }
}
